package cn.tedu.vue_master.oauth2;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

@Data
@TableName("oauth_client_details")
public class OAuthClientEntity implements Serializable {
    private static final long serialVersionUID = 42L;

    /**
     * id
     */
    @TableField("id")
    private Long id;

    /**
     * 客户端标识
     */
    @TableField("client_id")
    private String clientId;

    /**
     * 客户端名称
     */
    @TableField("client_name")
    private String clientName;

    /**
     * 客户端访问密匙
     */
    @TableField("client_secret")
    private String clientSecret;

    /**
     * 客户端所能访问的资源id集合,
     * 多个资源时用逗号(,)分隔
     */
    @TableField("resource_ids")
    private String resourceIds;

    /**
     * 指定客户端申请的权限范围,
     * 可选值包括 read,write,trust;
     * 若有多个权限范围用逗号(,)
     */
    @TableField("scope")
    private String scope;

    /**
     * 客户端支持的 OAuth 模式,
     * 可选值包括 authorization_code,password,
     * refresh_token,implicit,client_credentials,
     * 若支持多个 grant_type 用逗号(,)分隔
     */
    @TableField("authorized_grant_types")
    private String authorizedGrantTypes;

    /**
     * 客户端的重定向 URI,可为空
     */
    @TableField("web_server_redirect_uri")
    private String webServerRedirectUri;

    /**
     * access_token 的有效时间值(单位:秒)
     */
    @TableField("access_token_validity")
    private Integer accessTokenValidity;

    /**
     * refresh_token 的有效时间值(单位:秒)
     */
    @TableField("refresh_token_validity")
    private Integer refreshTokenValidity;

    /**
     * 当前客户端可访问的权限接口,
     * “请求动词 + 空格 + 接口”格式，
     * 多个用逗号隔开
     */
    @TableField("authority")
    private String authority;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 创建日期
     */
    @TableField("create_date")
    private LocalDateTime createDate;

    /**
     * 创建人
     */
    @TableField("create_user")
    private String createUser;

    /**
     * 修改时间
     */
    @TableField("modify_date")
    private LocalDateTime modifyDate;

    /**
     * 修改人
     *
     */
    @TableField("modify_user")
    private String modifyUser;
}
